#include <dos.h>
int bdos(dosfn, dosdx, dosal);
int dosfn; номер функции
unsigned int dosdx; значение регистра DX
unsigned int dosal; значение регистра AL
Описание.
Функция bdos выполняет системный вызов MS DOS, номер которого определен в dosfn, после размещения соответственно в регистрах DX и AL значений dosdx и dosal. Функция bdos выполняет команду INT 21H для осуществления системного вызова. Функция bdos задается для использования при вызовах DOS-системных вызовов, которые не принимают аргументов или только принимают их в регистры DX(DH,DL) и/или AL.
Возвращаемое значение.
Функция bdos возвращает значение регистра AX, запомненного системным вызовом.
Замечание.
Этот вызов не может использоваться для осуществления системных вызовов, в которых указываются ошибки посредством установки флага переноса. Т.к. Си-программы не имеют доступа к этому флагу, статус возвращаемого значения не может быть определен. В этом случае используется функция intdos.
Пример:
В следующем примере выводится подсказка 9 функцией MS DOS (вывод строки). Поскольку значение регистра AL не является необходимым, то передается 0. Этот пример работает правильно только для малой и средней моделей памяти, так как bdos не меняет значения сегментов регистров.
#include <dos.h>
char *buffer = "Enter file name :$";
/* AL не является необходимым, поэтому передается 0 */
bdos(9,(unsigned)buffer,0);